|
Date : 7 MAI et 25 NOVEMBRE 1991 Protection : Francisation + disque par d�faut + : Message d'entr�. Programme : MCOPY Outils : PERISCOPE + SOFT-ICE. Fichier : MCOPY.EXE Temps pass� : 20 MINUTES + 10 minutes Soci�t� : SHAREWARE Divers : Je ne me sert plus de ce programme depuis le 9 d�cembre 1991, il n'est pas fiable. Origine : L.F. Num�ro : 070 Un petit utilitaire bien utile lorsque l'on ne veut pas changer trois fois de disquettes lors d'une copie d'un disque 1.2Mo ou 1.44Mo. Malheureusement en ALLEMAND. La "Francisation" des zones textes ayant d�j� �t� faite par Mr L, il ne restait plus que le petit probl�me de l'acquisition des commandes J/N par O/N. Pour le N aucun probl�me, quant au O c'est une autre paire de manche puisque ce caract�re est test� en assembleur. Un "J" est �gal � 4A alors qu'un "O" est �gal � 4F. Premier point: lancer PERISCOPE et regarder ou se fait le test dudit caract�re. On trouve, en placant un BR AL EQ 4A puis GT une instruction de comparaison de position m�moire ( c'est mieux que rien mais ce n'est pas ce que j'attendais ) qui est: CMP [131B],4A. Cette derni�re modifi�e en CMP [131B],4F ne donne rien car le contenu de 131B est toujours �gal � 4A. Je fais une recherche sur l'�criture de cette position m�moire et je m'apercois que le programme y �crit 4A avec l'instruction MOV AL,4A qui est ensuite charg� en 131B. Je modifie tous les MOV AL,4A en MOV AL,4F et cel� fonctionne. Avec PCTOOLS chercher la chaine 803E1B134A et modifier 4A par 4F puis chercher toutes les occurences de B04A et les modifier par B04F. 25 Novembre 1991 Ce logiciel m'�nerve � afficher la page d'entr� du SHAREWARE. Je lance SOFT-ICE et je traque l'affichage. Une suite de CALLF affiche la page de pr�sentation ligne apr�s ligne. Un dernier CALLN attend un caract�re. Je d�cide simplement de NOPer ce dernier. Il se trouve en: CS=0C10 CS:1AFF 57 CS:1B00 E8ECEA CALL ; A NOPER ! CS:1B03 9A........ CALLF Un autre probl�me beaucoup plus p�nalisant survient lorsque l'on veut utiliser le disque dur en tampon et que l'on dispose d'un gros disque ( par exemple 213Mo ) et que vous l'avez partitionn� en deux volumes logiques l'un de 2Mo bootable pour le DOS et l'autre de 211Mo en READ/ WRITE pour les fichiers ( Il n'y a pas moyen de faire autrement m�me avec le DOS 5.0 ): MCOPY est sp�cialement but� puisqu'il ne veut � aucun prix utiliser le disque D: m�me si on le lance de ce dernier.! Ce qui fait que l'on ne peut pas copier une disquette 1.44: pas assez de place sur le C: ! On rallume SOFT-ICE et l'on va v�rifier de quelle fa�on MCOPY d�termine sur quel disque il veut travailler... C'est l'INT 21 sous-fonction 36h qui va voir la place restante sur le disque dur dont le num�ro se trouve en DL. BINGO !. Il suffit donc de mettre en DL z�ro ce qui revient � prendre le disque courant. Pour cela un simple XOR DL,DL suivi d'un NOP pour r�aligner � la place de l'instruction MOV DL,[BP+06] d'origine. CS=0EDE CS:006F 8A5606 MOV DL,[BP+06] ; METTRE XOR DL,DL + 1 NOP. CS:0072 B436 MOV AH,36 ; SOUS-FONCTION 36H. CS:0074 CD21 INT 21 ; GET DISK FREE SPACE. Avec PCTOOLS chercher la chaine 558BEC8A5606B436CD21 et remplacer 8A5606 par 32D290 puis la chaine 57E8ECEA9A et remplacer E8ECEA par 909090. FREDDY |